<?php
/*
 * Page Editar Alimento (Alimentos para las encuestas de consumo).
 * @Autor: Andrés Ubilla.
 */
class Editar extends TPage{
    public function onLoad($param){
        parent::onLoad($param);
        if(!$this->IsPostBack){
            $this->validarSession();
            $this->cargarInterfaz();
        }
    }
    
    private function validarSession(){
        $oUsuario = Util::getSession("Usuario");
        if(Util::isNullOrEmpty($oUsuario)){
            $this->Response->redirect($this->Service->constructUrl("Home"));
        }
    }
    
    private function cargarInterfaz(){
        $oAlimento = $this->obtenerAlimento();
        $this->iniciarControles($oAlimento);
    }
    
    private function obtenerAlimento(){
        $idAlimento = Util::isNull($this->Request["idAlimento"], "-1");
        
        try{
            if($idAlimento != "-1"){
                $oAlimento = new Alimentos();
                $oAlimentoBLL = new AlimentosBLL();
            
                $oAlimento = $oAlimentoBLL->obtenerPorId($idAlimento);
            
                return $oAlimento;
            }else{
                $oAlimento = null;
                
                return $oAlimento;
            }        
            
        } catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
    
    private function iniciarControles($oAlimento){        
        $this->txtNombre->Attributes->Add("required","required");
        
        if($oAlimento != null){
            try{
                $this->litNombreAlimento->Text = $oAlimento->getNombre();
                $this->txtNombre->Text = $oAlimento->getNombre();
                
            }catch(Exception $e){
                throw new Exception($e->getMessage());
            }
        }
    }
    
    private function limpiarForm(){
        $this->txtNombre->Text = "";
    }
    
    public function btnGuardarAlimentoOnClick($sender, $param){
        $idAlimento = Util::isNull($this->Request["idAlimento"], "-1");
        
        try{
            $oAlimento = new Alimentos();
            
            $oAlimento->setId($idAlimento);
            $oAlimento->setNombre($this->txtNombre->Text);
            $oAlimento->setEstado(1);
            
            $oAlimentoBLL = new AlimentosBLL();
            $idAlimento = $oAlimentoBLL->editar($oAlimento);

            $this->limpiarForm();
            Util::setSession("Mensaje", $this->litAlert->Text = Util::setMensajeUsuario("Alimento ha sido editado exitosamente.", Util::MENSAJE_OK));
            $this->Response->redirect($this->Service->constructUrl("Alimento.Listar"));                         
        } catch (Exception $e){      
            throw new Exception($e->getMessage());
        }
    }
}
?>
